今天要分享的是while迴圈、for迴圈、巢狀迴圈、實作練習:
首先是while迴圈:
範例一
name=input("請輸入你的名字:")
while name == "": #如果輸入空格的話,就會在while迴圈中跑
name=input("請輸入你的名字:")
else:
print(f"你好,{name}!")
輸出結果為:
請輸入你的名字: (輸入空格)
請輸入你的名字:abcd1234
你好,abcd1234!
#範例二
food=input("請輸入你喜歡吃的食物:")
while food != "q": #當food不等於q時,就會輸出你喜歡吃的食物是{food}
print(f"你喜歡吃的食物是{food}")
food=input("請輸入你喜歡吃的食物:")
print("錯誤!")
輸出結果為:
請輸入你喜歡吃的食物:蘋果
你喜歡吃的食物是蘋果
請輸入你喜歡吃的食物:薯條
你喜歡吃的食物是薯條
請輸入你喜歡吃的食物:q
錯誤!
#範例三
num=int(input("請輸入1到10之間的數字:"))
while num < 1 or num > 10:
print(f"你輸入的數字{num}是無效的。")
num=int(input("請輸入1到10之間的數字:"))
print(f"你輸入了{num}")
輸出結果為:
請輸入1到10之間的數字:11
你輸入的數字11是無效的。
請輸入1到10之間的數字:0
你輸入的數字0是無效的。
請輸入1到10之間的數字:5
你輸入了5
練習:複利計算機
#總金額=本金(1(利率/100)) 時間
#假設有$10000,銀行利息為5%,就是1.05(本金1+利息0.05)
#存第一年為100001.05,存第二年為100001.05 2(為1.05的2次方)
#本金部分
amount=0
while amount<=0:
amount=float(input("請輸入本金金額:"))
if amount<=0:
print("本金金額不能小於或是等於零。")
print(amount)
輸出結果為:
請輸入本金金額:-1(自行輸入)
本金金額不能小於或是等於零。
10000.0
#利率部分
rate=0
while rate<=0:
rate=float(input("請輸入利率:"))
if rate<=0:
print("利率不能小於或是等於零。")
print("利率:",rate)
輸出結果為:
請輸入利率:0
利率不能小於或是等於零。
請輸入利率:5
利率:5
#年限部分
time=0
while time<=0:
time=int(input("請輸入年限:"))
if time<=0:
print("年限不能小於或是等於零。")
print("年限:",time)
輸出結果為:
請輸入年限:0
年限不能小於或是等於零。
請輸入年限:2
年限:2
#統整
amount=0
rate=0
time=0
while amount<=0:
amount=float(input("請輸入本金金額:"))
if amount<=0:
print("本金金額不能小於或是等於零。")
while rate<=0:
rate=float(input("請輸入利率:"))
if rate<=0:
print("利率不能小於或是等於零。")
while time<=0:
time=int(input("請輸入年限:"))
if time<=0:
print("年限不能小於或是等於零。")
print(amount)
print("利率:",rate)
print("年限:",time)
total=amount * (1 + (rate / 100)) ** time
print("總金額:",total)
輸出結果為:
請輸入本金金額:100000
請輸入利率:5
請輸入年限:7
金額 100000.0
利率:5.0
年限 7
總金額:140710.04226562506
再來分享的是for迴圈:
#執行固定次數的況下用for迴圈會更好
for x in range(1,11): #從1到11,不包含11
#用關鍵字in後面要接可迭代的物件,range方法可產生一個可迭代的東西。
print(x)
輸出結果為:
1
2
3
...
9
10
for x in reversed(1,11): #反過來從11到1,不包含11
print(x)
輸出結果為:
10
9
8
...
2
1
credit_card="1234-5678-9012-3456"
for x in credit_card:
if x==9:
continue #此迴圈會繼續執行,但會跳過9
#break #此迴圈會中斷(只執行到9之前,不包含9),後面不會繼續執行
else:
print(x)
#字典 Dictionary
#鍵:key #值:value
my_dict={"a":1,"b":2,"c":3}
for key,value in my_dict.items(): #items()方法可在前面迭代兩個變數(這裡是key跟value)
print("key:",key)
print("value:",value)
最後輸出為:
key:a
value:1
key:b
value:2
key:c
value:3
最後是巢狀迴圈:
1.
for x in range(1,10): #從1到9,不包含10
print(x,end=" ") #print結尾的內建是換行,要改成空格就用end=" "
輸出結果為:1 2 3 4 5 6 7 8 9
2.
for y in range(3):
for x in range(1,10):
print(x,end=" ")
print()
輸出結果為:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
3.
rows=int(input("請輸入行數:"))
cols=int(input("請輸入列數:"))
symbol=input("請輸入符號:")
for i in range(rows): #外迴圈
for j in range(cols): #內迴圈
print(symbol,end=" ")
print()
輸出結果為:
請輸入行數:3
請輸入列數:2
請輸入符號:%
% %
% %
% %
以上為我在youtube上所學到的Python基礎語法及應用練習,影片創作者是CodeShiba 程式柴,歡迎大家也一起去觀看影片自學Python語法,影片解說得很詳盡,很適合初學者!
參考網址:https://www.youtube.com/watch?v=lvH4-4iYjgs&list=LL&index=4